package com.yunhe.authority.service.app;

import java.util.List;
import java.util.Map;

/**
 * @author zhengbo
 * @date 2021/11/11 14:01
 * APP推送
 */
public interface AppPushInfoService {

    /**
     * 记录用户登录app时所需要的推送的字段
     * @param userId 用户id
     * @param registrationId registrationId
     * @param deviceId 设备id
     * @param systemOs 系统
     */
    void recordUserAppInfo(Long userId,
                           String registrationId,
                           String deviceId,
                           String systemOs);

    /**
     * 登出时需要删除登录信息
     * @param userId 用户id
     * @param registrationId 注册registrationId
     * @param deviceId 设备id
     */
    void deleteUserAppInfo(Long userId,
                           String registrationId,
                           String deviceId);

    /**
     * 推送给指定的用户
     * @param userIds 用户
     * @param notificationTitle 通知标题
     * @param msgTitle 消息标题
     * @param msgContent 消息内容
     * @param extras 额外字段
     */
    void pushMessageToUserList(String userIds,
                               String notificationTitle,
                               String msgTitle,
                               String msgContent,
                               Map<String, String> extras);

    /**
     * 推送给虚拟园区下的所有人
     * @param stationId 虚拟园区id
     * @param notificationTitle 通知标题
     * @param msgTitle 消息标题
     * @param msgContent 消息内容
     * @param extras 额外字段
     */
    void pushMessageToStationUser(Long stationId,
                                  String notificationTitle,
                                  String msgTitle,
                                  String msgContent,
                                  Map<String, String> extras);

}
